#include <stdio.h>

void function_01() {
    int year;
    int month;
    int day;

    // sscanf 的用法非常简单, 和 scanf 用法差不多
    // scanf 从键盘按照指定格式获取数据, 而 sscanf 可以从内存按照指定格式获取数据

    scanf("%d-%d-%d", &year, &month, &day);
    printf("Today is %d-%d-%d\n", year, month, day);

    char buffer[1024] = "2023-11-25";

    sscanf(buffer, "%d-%d-%d", &year, &month, &day);
    printf("Today is %d-%d-%d\n", year, month, day);
}

void function_02() {
    // sscanf 的高阶用法
    // %*s 或 %*d: 跳过数据
    // %[width]s: 读到指定宽度的数据
    // %[a-z]: 匹配 a 到 z 中的任意数据
    // %[abcAB]: 匹配 abcAB 其中的任意一个
    // %[^a]: 匹配非 a 的任意字符
    // %[^a-z]: 匹配非 a 到 z 之外的任意字符

    char string[1024] = {};
    char *buffer = "yui.blue@qq.com";

    sscanf(buffer, "%*[^.].%[a-z]", string);
    printf("string = %s\n", string);
}

int main() {
    // function_01();

    function_02();
    return 0;
}